package com.demo.java.OD651_700.OD656;

import java.util.Scanner;
import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【相同数字组成图形的周长(A卷-200分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/147040497
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = Integer.parseInt(in.nextLine()); // 读取操作次数 N
        int[][] matrix = new int[64][64]; // 初始化 64x64 的矩阵

        Integer[][] input_datas = new Integer[N][]; // 存储每行输入的数据
        // 读取 N 行数据并填充矩阵
        for (int i = 0; i < N; i++) {
            input_datas[i] = Arrays.stream(in.nextLine().split(" ")) // 读取一行输入
                    .map(Integer::parseInt) // 转换为整数
                    .toArray(Integer[]::new); // 转为 Integer 数组
            int target = input_datas[i][0]; // 获取当前数字
            // 填充矩阵中的指定位置
            for (int j = 1; j < input_datas[i].length; j += 2) {
                matrix[input_datas[i][j]][input_datas[i][j + 1]] = target;
            }
        }

        // 用于存储结果
        int[] result = new int[N];
        // 计算每个数字的独立块数量
        for (int k = 0; k < N; k++) {
            int temp_res = 0;
            int target = input_datas[k][0]; // 当前数字
            // 遍历整个矩阵
            for (int i = 0; i < 64; i++) {
                for (int j = 0; j < 64; j++) {
                    if (matrix[i][j] == target) {
                        // 检查上下左右相邻的元素
                        if (i == 0 || matrix[i - 1][j] != target) temp_res++;
                        if (i == 63 || matrix[i + 1][j] != target) temp_res++;
                        if (j == 0 || matrix[i][j - 1] != target) temp_res++;
                        if (j == 63 || matrix[i][j + 1] != target) temp_res++;
                    }
                }
            }
            result[k] = temp_res; // 存储结果
        }

        // 输出结果
        for (int i = 0; i < N; i++) {
            System.out.print(result[i]);
            if (i != N - 1) {
                System.out.print(" ");
            }
        }
    }
}
